package com.jiangruanjavaproject.utils;

import org.bouncycastle.crypto.digests.RIPEMD160Digest;
import org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Security;

/**
 * @author:wanfeng
 * @desc:用于封装各种类型的Hash算法
 * @datetime:2021/12/24 10:37
 *///data 给定的数据
  //SHA256哈希值
public class Hash {
    public static byte[] SHA256(byte[] data){
        try {
            MessageDigest digest =MessageDigest.getInstance("SHA-256");
            digest.update(data);
            return digest.digest();

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        return  null;
    }

    /**
     * 该方法对给定的数据进行ripemd160算法计算,并返回结果
     *
     * @param  data 给定的数据
     * @returnripemd160哈希值
     */
//    public  static byte[]RIPEMD160(byte[]data){
//        //security:安全
//        //provider:提供者
//
//
//        Security.addProvider(new BouncyCastlePQCProvider());
//        try {
//            MessageDigest digest = MessageDigest.getInstance("RipeMD160");
//            digest.update(data);
//            return digest.digest();
//        } catch (NoSuchAlgorithmException e) {
//            e.printStackTrace();
//        }
//
//        return  null;
//    }
    public static byte[] encodeRIPEMD160(byte[] data){
        RIPEMD160Digest digest = new RIPEMD160Digest();
        digest.update(data,0,data.length);
        byte[] size = new byte[digest.getDigestSize()];
        digest.doFinal(size,0);
        return  size;
    }
}
